package com.bp.project.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bp.common.annotation.Excel;
import com.bp.common.core.domain.BaseEntity;

/**
 * 项目工程信息对象 biz_project
 * 
 * @author shaominjie
 * @date 2021-01-18
 */
public class BizProject extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long projId;

    /** 所属区域ID */
    @Excel(name = "所属区域ID")
    private Long regionId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String proName;

    /** 项目建设内容 */
    @Excel(name = "项目建设内容")
    private String proDesc;

    /** 当前阶段，1立项，99结束 */
    @Excel(name = "当前阶段")
    private Integer currentStage;

    /** 项目状态 */
    @Excel(name = "项目状态")
    private Integer status;

    /** 负责人姓名 */
    @Excel(name = "负责人姓名")
    private String managerName;

    /** 负责人电话 */
    @Excel(name = "负责人电话")
    private String managerPhone;

    /** 负责人单位 */
    @Excel(name = "负责人单位")
    private String managerDept;

    /** 创建者id */
    @Excel(name = "创建者id")
    private Long managerId;

    /** 中标公司 */
    @Excel(name = "中标公司")
    private String bidCompany;

    /** 中标公司社会代码 */
    @Excel(name = "中标公司社会代码")
    private String bidCompanyCode;

    /** 中标单位负责人姓名 */
    @Excel(name = "中标单位负责人姓名")
    private String bidderName;

    /** 中标单位负责人电话 */
    @Excel(name = "中标单位负责人电话")
    private String bidderPhone;

    /** 中标价格 */
    @Excel(name = "中标价格")
    private BigDecimal bidPrice;

    /** 中标时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "中标时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bidTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTimeReal;
    /** 项目开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 保留字段A */
    @Excel(name = "保留字段A")
    private String reserveA;

    /** 保留字段B */
    @Excel(name = "保留字段B")
    private String reserveB;

    /** 保留字段C */
    @Excel(name = "保留字段C")
    private String reserveC;


    private List<BizStage> stageList;


    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public Date getCompleteTimeReal() {
        return completeTimeReal;
    }

    public void setCompleteTimeReal(Date completeTimeReal) {
        this.completeTimeReal = completeTimeReal;
    }

    public List<BizStage> getStageList() {
        return stageList;
    }

    public void setStageList(List<BizStage> stageList) {
        this.stageList = stageList;
    }

    public void setProjId(Long projId) {
        this.projId = projId;
    }

    public Long getProjId(){
        return projId;
    }
    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }

    public Long getRegionId(){
        return regionId;
    }
    public void setProName(String proName) {
        this.proName = proName;
    }

    public String getProName(){
        return proName;
    }
    public void setProDesc(String proDesc) {
        this.proDesc = proDesc;
    }

    public String getProDesc(){
        return proDesc;
    }
    public void setCurrentStage(Integer currentStage) {
        this.currentStage = currentStage;
    }

    public Integer getCurrentStage(){
        return currentStage;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus(){
        return status;
    }
    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public String getManagerName(){
        return managerName;
    }
    public void setManagerPhone(String managerPhone) {
        this.managerPhone = managerPhone;
    }

    public String getManagerPhone(){
        return managerPhone;
    }
    public void setManagerDept(String managerDept) {
        this.managerDept = managerDept;
    }

    public String getManagerDept(){
        return managerDept;
    }
    public void setManagerId(Long managerId) {
        this.managerId = managerId;
    }

    public Long getManagerId(){
        return managerId;
    }
    public void setBidCompany(String bidCompany) {
        this.bidCompany = bidCompany;
    }

    public String getBidCompany(){
        return bidCompany;
    }
    public void setBidCompanyCode(String bidCompanyCode) {
        this.bidCompanyCode = bidCompanyCode;
    }

    public String getBidCompanyCode(){
        return bidCompanyCode;
    }
    public void setBidderName(String bidderName) {
        this.bidderName = bidderName;
    }

    public String getBidderName(){
        return bidderName;
    }
    public void setBidderPhone(String bidderPhone) {
        this.bidderPhone = bidderPhone;
    }

    public String getBidderPhone(){
        return bidderPhone;
    }
    public void setBidPrice(BigDecimal bidPrice) {
        this.bidPrice = bidPrice;
    }

    public BigDecimal getBidPrice(){
        return bidPrice;
    }
    public void setBidTime(Date bidTime) {
        this.bidTime = bidTime;
    }

    public Date getBidTime(){
        return bidTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime(){
        return startTime;
    }
    public void setReserveA(String reserveA) {
        this.reserveA = reserveA;
    }

    public String getReserveA(){
        return reserveA;
    }
    public void setReserveB(String reserveB) {
        this.reserveB = reserveB;
    }

    public String getReserveB(){
        return reserveB;
    }
    public void setReserveC(String reserveC) {
        this.reserveC = reserveC;
    }

    public String getReserveC(){
        return reserveC;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("projId", getProjId())
            .append("regionId", getRegionId())
            .append("proName", getProName())
            .append("proDesc", getProDesc())
            .append("currentStage", getCurrentStage())
            .append("status", getStatus())
            .append("managerName", getManagerName())
            .append("managerPhone", getManagerPhone())
            .append("managerDept", getManagerDept())
            .append("managerId", getManagerId())
            .append("bidCompany", getBidCompany())
            .append("bidCompanyCode", getBidCompanyCode())
            .append("bidderName", getBidderName())
            .append("bidderPhone", getBidderPhone())
            .append("bidPrice", getBidPrice())
            .append("bidTime", getBidTime())
            .append("startTime", getStartTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("reserveA", getReserveA())
            .append("reserveB", getReserveB())
            .append("reserveC", getReserveC())
            .toString();
    }
}
